const mongoose = require('mongoose')
const moment = require('moment')

// 创建文章集合规则
const articleSchema = new mongoose.Schema({
    // 作者id
    author: {
      type: mongoose.Schema.Types.ObjectId,
      // 将文章与用户集合关联
      ref: 'User',
      required: [true, '请传递作者id']
    },
    // 文章分类id
    category: {
      type: mongoose.Schema.Types.ObjectId,
      // 将文章与分类集合关联
      ref: 'Category',
      required: [true, '请传递分类id']
    },
    // 标题
  title: {
    type: String,
    minlength: 1,
    maxlength: 20,
    required: [true, '请填写文章标题']
  },
  // 文章封面
  cover: {
    type: String,
    default: null
  },
  // 简单描述
  description: {
    type: String
  },
  // 文章内容
  content: {
    type: String,
    required: true
  },
  // 发布日期
  publishDate: {
    type: String,
    required: false
  },
  // 文章状态 0：待发布；1：已发布
  state: {
    type: Number,
    default: 0
  },
  // 创建时间
  createTime: {
    type: String,
    default: moment().format('YYYY-MM-DD HH:mm:ss')
  },
  // 文章阅读量
  views: {
    type: Number,
    default: 0,
  },
  // 评论数量
  comments: {
    type: Number,
    // required: [true, '请填写文章标题'],
    default: 0
  },
})

// 根据规则创建集合
const Article = mongoose.model('Article', articleSchema)

// 将集合规则作为模块成员进行导出
module.exports = {
  Article
}